The Lightweight Directory Access Protocol (“LDAP”) is a standard computer networking protocol for querying and modifying entries in a database. The basic protocol is defined in a group of Internet Engineering Task Force (“IETF”) Request for Comments (“RFC”) documents; various aspects of the current version of the protocol (version 3) are described in RFCs listed in the “LDAP Technical Specification Road Map” (RFC4510, published June 2006). The databases reachable through LDAP may contain any sort of data, but most commonly contain identity and contact information for people and organizations.
LDAP may be viewed as a communication framework within which a client and server establish and conduct a conversation. The client issues one or more requests, and the server responds with a similar number of replies. The client generally need not wait for a response to one request before sending another request, and the server is generally not required to respond to multiple outstanding requests in the same order they were issued. Many LDAP requests can be answered very quickly, but some requests can cause the server to dedicate large amounts of memory or many computing cycles to prepare a response.
Since LDAP servers are often deployed in applications where they must respond to queries from an enormous number of clients (many of which may only issue one or two simple requests), it is important that the server's design address the issue of computationally expensive queries, to attempt to mitigate the effect of such queries on the quality of service enjoyed by less demanding clients.